package cn.jolyoulu.cmnservice.entity.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;


import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;
import cn.jolyoulu.cmnservice.utils.HoldUserUtils;

import java.time.LocalDateTime;


/**
 * 菜单表
 */
@Data
@ToString(callSuper = true)
@Accessors(chain = true)
@TableName(value = "sys_menu")
public class SysMenu {


    /**
     * 菜单id
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;


    /**
     * 父级编号
     */
    private String parentId;


    /**
     * 所有父级编号（,）分割
     */
    private String parentIds;


    /**
     * 本级排序号（升序）
     */
    private Integer treeSort;


    /**
     * 是否最末级（0否 1是）
     */
    private Integer treeLeaf;


    /**
     * 层次级别
     */
    private Integer treeLevel;


    /**
     * 全节点名(/)分割
     */
    private String treeNames;


    /**
     * 菜单名称
     */
    private String menuName;


    /**
     * 菜单类型（1菜单 2权限）
     */
    private Integer menuType;


    /**
     * 菜单图标
     */
    private String icon;


    /**
     * 权限标识
     */
    private String permission;


    /**
     * 路由地址
     */
    private String path;


    /**
     * 组件路径
     */
    private String component;


    /**
     * 是否隐藏路由: 0否,1是
     */
    private Integer hidden;


    /**
     * 是否显示（0否 1是）
     */
    private Integer isShow;


    /**
     * 状态（1正常 0删除）
     */
    private Integer delFlag;


    /**
     * 创建者
     */
    private String createBy;


    /**
     * 创建时间
     */
    private LocalDateTime createTime;


    /**
     * 更新者
     */
    private String updateBy;


    /**
     * 更新时间
     */
    private LocalDateTime updateTime;


    /**
     * 备注信息
     */
    private String remarks;


    public SysMenu() {
    }

    public SysMenu fillUpdate() {
        this.updateBy = HoldUserUtils.get().getUserId();
        this.updateTime = LocalDateTime.now();
        return this;
    }

    public SysMenu fillCreat() {
        this.createBy = HoldUserUtils.get().getUserId();
        this.createTime = LocalDateTime.now();
        return this;
    }
}